﻿using System.Collections.Generic;
using ActivateYourGlutes.Services.Model;

namespace ActivateYourGlutes.Services
{
    public interface IMeasurementTypeProvider : IProviderBase
    {
        /// <summary>
        /// Returns a list of the measurement types that can be logged against
        /// </summary>
        List<MeasurementType> MeasurementTypes(Account forAccount);

        /// <summary>
        /// Returns the value types that a meaurement can be taken with
        /// </summary>
        List<MeasurementTypeValueType> ValueTypes();

        /// <summary>
        /// Adds the given measurement type to database and assigns it to the account
        /// </summary>
        void AddToAccount(Account account, MeasurementType measurementType);

        /// <summary>
        /// Gets a measurement type by ID
        /// </summary>
        MeasurementType GetById(Account accessingAccount, int id);

        /// <summary>
        /// Deletes a measurement type identified by id
        /// </summary>
        void Delete(Account accessingAccount, int id);
    }
}
